package com.yidu.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.yidu.model.SnComInventory;
import com.yidu.model.SnProDetail;

public interface SnComInventoryMapper {
    int deleteByPrimaryKey(String ciId);

    int insert(SnComInventory record);

    int insertSelective(SnComInventory record);

    SnComInventory selectByPrimaryKey(String ciId);

    int updateByPrimaryKeySelective(SnComInventory record);

    int updateByPrimaryKey(SnComInventory record);
    /**
     * 查询总公司的商品库存
     * @param comId 商品id
     * @return 商品库存modle
     */
	SnComInventory selectBranch(String comId);
	/**
	 * 查询所有
	 * @param maps 分页 条件
	 * @return 商品库存model集合
	 */
	List<SnProDetail> findAll(Map<String, Object> maps);
	/**
	 * 查询行数
	 * @param maps 条件
	 * @return 行数
	 */
	int findCount(Map<String, Object> maps);
	
	/**
	 * 根据商品id查询商品库存
	 * @param map 商品id
	 * @return 商品库存model
	 */
	@Select("select ci_cost as ciCost from  sn_com_inventory where com_id=#{comId} and  bra_id=#{braId} ")
	List<SnComInventory> findComId(Map<String, Object> map);
	
	/**
	 * 根据商品id和总公司id查询库存
	 * @param map 条件
	 * @return 商品库存对象
	 */
	SnComInventory findComBranId(Map<String, Object> map);
	
	
	/**
	 *  根据商品ID和分公司ID减少商品库存数量
	 * @param comId 商品ID
	 * @param braId 分公司ID
	 * @param wdNumber 批发数量
	 * @return rows 行数
	 */
	@Update("update sn_com_inventory set ci_number = ci_number-#{number} where com_id = #{comId} and bra_id = #{braId}")
	int updateInventory(@Param("braId")String braId,@Param("comId")String comId, @Param("number")Integer wdNumber);
	
	/**
	 * 根据商品ID和分公司ID增加商品库存数量
	 * @param comId 商品ID
	 * @param braId 分公司ID
	 * @param sdCount 批发数量
	 * @return rows 行数
	 */
	@Update("update sn_com_inventory set ci_number = ci_number+#{sdCount} where com_id = #{comId} and bra_id = #{braId}")
	int addInventory(@Param("braId")String braId, @Param("comId")String comId, @Param("sdCount")Integer sdCount);
	
	/**
	 * 根据商品ID和分公司ID查询商品库存ID
	 * @param comId 商品ID
	 * @param braId 分公司ID
	 * @return 库存ID
	 */
	@Select("select ci_id from sn_com_inventory where com_id = #{comId} and bra_id = #{braId}")
	String queryInventoryId(@Param("braId")String braId,@Param("comId")String comId);
	
	/**
	 * 根据商品ID和分公司ID查询商品库存数量
	 * @param braId 分公司Id
	 * @param comId 商品ID
	 * @return 商品库存数量
	 */
	@Select("select ci_number from sn_com_inventory where com_id = #{comId} and bra_id = #{braId}")
	Integer findWdNumber(@Param("braId")String braId,@Param("comId")String comId);

}